package com.ddsso.auth.web.repository;

import com.ddsso.auth.web.session.DistributedSession;

/**
 * @author zdd
 * @package com.ddsso.auth.web.repository
 * @Time Created by zdd on 2016/11/2.
 * @description 分布式会话DAO
 * <p>
 * 提供默认的分布式会话存储接口
 */
public interface IDistributedSessionDao {

    /**
     * 根据会话ID获取会话
     *
     * @param sessionId
     *            会话ID
     * @return 分布式会话
     */
    public DistributedSession getSession(String sessionId);

    /**
     * 创建会话
     * <p>
     * 创建会话必须保证唯一性，当会话ID已经存在则应该抛出{@link }异常
     *
     * @param distributedSession
     *            分布式会话
     */
    public void createSession(DistributedSession distributedSession);

    /**
     * 更新会话
     *
     * @param distributedSession
     *            分布式会话
     */
    public void updateSession(DistributedSession distributedSession);

    /**
     * 清除会话
     *
     * @param distributedSession
     *            分布式会话
     */
    public void removeSession(DistributedSession distributedSession);
}
